Managing Code Complexity in a Portable Microkernel

نویسنده

  • Uwe Dannowski
چکیده

Increasing code complexity can become a serious issue even in a software project as small as a microkernel. This paper reports on how we address this problem in the L4Ka::Pistachio microkernel. We define multiple configuration dimensions and assign code fragments to the appropriate dimensions. The kernel build system combines code fragments for the specific configuration. While this approach avoids the run-time costs of a full-blown object-oriented design, it does not avoid code duplication. To address the code duplication problem, we model the code selection with class hierarchies using multiple inheritance and polymorphism. However, the run-time overhead of virtual functions results in a serious (2x) performance hit for the time-critical kernel functionality. To address this latter problem, we apply class flattening to completely eliminate the overhead of virtual function calls. Our evaluation shows that a kernel with flattened class hierarchies performs as fast as one without class hierarchies. Thus, advanced object-oriented programming techniques need no longer be avoided in performancefocused microkernels.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Automated Object Layout Optimization in a Portable Microkernel

In a portable microkernel, the increasing diversity of target configurations can lead to software complexity problems. Insufficiencies of current kernel programming techniques manifest in excessive preprocessor use for code selection, in code duplication, and in suboptimal performance. Object-oriented programming can solve the portability problems. However, the language implementation of inheri...

متن کامل

Experience with the Development of a Microkernel-Based, Multi-Server Operating System

During the first half of the 1990s IBM developed a set of operating system products called Worhplace OS that was bused on the Mach 3.0 microkernel and Taligent’s object-oriented TalOS. These products were intended to be scalable, portable and capable of concurrently running multiple operating system personalities while sharing as much code as possible. The operating system personalities were co...

متن کامل

PEACE Threads Interface On Microkernel

Recently, thread libraries have become powerful entities to support parallel programming on shared memory multiprocessors and multicomputers. However, the disparity between the primitives offered by the operating systems and thread’s interface creates a challenge for those who wish to create portable threads library. The implementation of PEACE (POSIX Extensions to an Advanced Computing Environ...

متن کامل

A declarative approach to extensible interface compilation

In microkernel-based operating systems, source-to-source compilers generate code to ease the process of marshaling data for communication via message passing. However, the rule of thumb for these interface compilers seems to be “simple, extensible, efficient output – pick any one”. I argue that the major cause of extensibility-limiting complexity in interface compilers comes from the sourceto-s...

متن کامل

Workplace Microkernel and Os: a Case Study Workplace Microkernel and Os: a Case Study

SUMMARY IBM's Microkernel, named Workplace OS microkernel 18], was the core component of Workplace OS, a portable successor of OS/2. The basic premise of Workplace OS work was: 1) IBM would adopt and improve the CMU Mach 3.0 microkernel for use on PDAs, the desktop, workstations, and massively parallel machines, and 2) that several operating system personalities would execute on the microkernel...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2004